package com.cmc.cloud.cmclink.doc.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cmes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.util.Date;

/**
 * 订舱 DO
 *
 * @author 陈正
 */
@TableName("doc_so")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SoDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 订舱号
     */
    private String bookingNo;
    /**
     * 提单号 规则
     */
    private String blNo;
    /**
     * 客户参考号
     */
    private String referenceNo;
    /**
     * 订舱船名 line 第一段
     */
    private String bookingVessel;
    /**
     * 订舱航次 line 第一段
     */
    private String bookingVoyage;
    /**
     * route Id
     */
    private Long routeId;
    /**
     * 路径描述
     */
    private String routeDescription;
    /**
     * 第一个liner段的POL设置为current pol
     */
    private String currentPort;
    /**
     * 接货地
     */
    private String porCode;
    /**
     * 装货港
     */
    private String polCode;
    /**
     * 卸货港
     */
    private String podCode;
    /**
     * 目的地
     */
    private String delCode;
    /**
     * 订舱人代码
     */
    private String bookingParty;
    /**
     * 一级代理代码
     */
    private String topAgent;
    /**
     * 箱状态
     */
    private String cntrStatus;
    /**
     * 箱主代码
     */
    private String cntrOwner;
    /**
     * 舱位代码
     */
    private String spaceOwner;
    /**
     * 约号
     */
    private String agreementNo;
    /**
     * 运输条款
     */
    private String shippingTerm;
    /**
     * so 通知邮箱 多个
     */
    private String soNotifyEmails;
    /**
     * si 通知邮箱 多个
     */
    private String siNotifyEmails;
    /**
     * 订舱状态 下拉框选项来源基础数据 SO Status 0 草稿 1 订舱处理中 2 订舱舱位确认中 3 订舱已确认 4 订舱待补充材料 5 订舱拒绝
     */
    private String soStatus;
    /**
     * SO内容审核状态 Pending待审核 Approved审核通过 Rejected拒绝 Pending For Material Uploaded待客户补充资料
     */
    private String soContentStatus;
    /**
     * 数据来源 网厅web 、edi、api、手动manual、
     */
    private String dataSource;
    /**
     * 拆分来源 正常 normal 拆分 split 合并 combine
     */
    private String splitCombine;
    /**
     * 订舱时间
     */
    private Date bookingTime;
    /**
     * 订舱备注
     */
    private String bookingRemark;
    /**
     * 审批流 id
     */
    private Long processInstanceId;
    /**
     * 订舱号维度，0 审批通过后修改审批中 只有一个 不显示 （审批通过后，当前变为1)；1 有效  默认1 正常显示；-1 无效  旧审批通过变为-1，再审批不通过也改为-1 不显示；
     */
    private Integer validStatus;
    /**
     * 审批通过后修改关联旧SO的ID
     */
    private Long oldId;
    /**
     * 最近操作
     */
    private Long operateLogId;

    /**
     * 客户要求签单类型
     */
    private String signOrder;

}
